FloatingActionButton と ThemeData のアクセント プロパティ
まとめ
Flutter を削除しましたFloatingActionButton
(FAB) 依存関係ThemeData
アクセントのプロパティ。
コンテクスト
これはほんの一部でしたが、マテリアルテーマシステムアップデート計画。
以前は、ThemeData
accentIconTheme
財産はただだった
によって使われたFloatingActionButton
デフォルトを決定する
ボタン内に表示されるテキストまたはアイコンの色。
FloatingActionButton
も使用しましたThemeData accentTextTheme
財産、
ただし、この依存関係は文書化されておらず、不必要でした。
これらの依存関係はどちらも混乱を招くものでした。
たとえば、Theme
のaccentIconTheme
すべてのフローティング アクション ボタンの外観を変更するには、
他のどのコンポーネントが影響を受けるかを知ることは困難でした。
または将来的に影響を受ける可能性があります。
のマテリアルデザイン仕様「アクセント」カラーは含まれなくなりました。
のColorScheme
の二次色が代わりに使用されるようになりました。
以前は、アプリケーションはテキストとアイコンの色を設定できました
内部FloatingActionButtons
ウィジェットを使ってforegroundColor
プロパティ、またはFloatingActionButtonTheme
のforegroundColor
。
どちらでもない場合foregroundColor
プロパティが指定された、前景
デフォルトの色accentIconTheme
の色。
この変更により、デフォルトの動作ではカラースキームが使用されます。onSecondary
代わりに色を付けます。
変更内容の説明
以前は、accentIconTheme
のデフォルトを提供しましたFloatingActionButton
のforegroundColor
財産:
final Color foregroundColor = this.foregroundColor
?? floatingActionButtonTheme.foregroundColor
?? theme.accentIconTheme.color // To be removed.
?? theme.colorScheme.onSecondary;
テーマを設定するアプリaccentIconTheme
を効果的に設定するにはforegroundColor
全部の
フローティングアクションボタンは、同じ効果を得ることができます
を構成するforegroundColor
彼らのテーマのfloatingActionButtonTheme
。
のFloatingActionButton
のforegroundColor
現在使用されています
を設定するにはtextStyle
のRawMaterialButton
によって作成されたFloatingActionButton
。以前、
このテキスト スタイルは、次のボタン スタイルに基づいています。ThemeData.accentTextTheme
:
// theme.accentTextTheme becomes theme.textTheme
final TextStyle textStyle = theme.accentTextTheme.button.copyWith(
color: foregroundColor,
letterSpacing: 1.2,
);
アプリが明示的に設定している場合を除きます。accentTextTheme
この文書化されていない依存関係を利用するには、
この使用法accentTextTheme
は不要です。
この変更により、この使用法が置き換えられます。accentTextTheme
とtextTheme
。
移行ガイド
この変更は次の 2 つのステップで発生しました。
- の前景の場合、
FloatingActionButton
設定されています デフォルト以外の色に変更すると、警告が出力されるようになりました。 - の
accentIconTheme
依存関係が削除されました。 まだ移行していない場合は、アプリを移行します 以下のパターンの通り。
設定するには、FloatingActionButton
のforegroundColor
すべての FAB について、テーマの設定を行うことができます。floatingActionButtonTheme
その代わりにaccentIconTheme
。
移行前のコード:
MaterialApp(
theme: ThemeData(
accentIconTheme: IconThemeData(color: Colors.red),
),
)
移行後のコード:
MaterialApp(
theme: ThemeData(
floatingActionButtonTheme: FloatingActionButtonThemeData(
foregroundColor: Colors.red,
),
),
)
タイムライン
リリースされたバージョン: 1.16.3
安定版リリース: 1.17
参考文献
設計ドキュメント:
API ドキュメント:
FloatingActionButton
ThemeData
FloatingActionButtonThemeData
関連する PR:
- ステップ 1/2Flutter について警告する ThemeData アクセント プロパティに対する FloatingActionButton の依存関係
- ステップ 2/2Flutter の FloatingActionButton 依存関係を削除する ThemeData アクセント プロパティについて
他の: